草庐IT

c++ - CreateProcess 和重定向输出

全部标签

c++ - 代码在 Linux 上运行良好,但在 Windows 操作系统上提供不同的输出

我一直想知道为什么下面的代码在Windows操作系统上给我不同的输出。同时,相同的代码在Ubuntu上运行良好。#include#includeusingnamespacestd;stringgetname(void);chargetgender(string);voidsetinfo(string,char);intmain(){stringcustomer="";chargender;do{do{customer=getname();}while(customer=="");do{gender=getgender(customer);cout在我的Ubuntu机器上,这段代码工作正

c - 将一个简单的 c 程序从 linux 移植到 windows

我想编写一个简单的C程序来执行以下操作。打开与并行端口的连接,将引脚2设置为高电平,将引脚2设置为低电平并关闭连接。我为此使用了JNI,所以我的Java源文件如下。packagemeas;publicclassMeas{publicstaticnativebooleanopen();publicstaticnativebooleanon();publicstaticnativebooleanoff();publicstaticnativebooleanclose();}请注意,Java文件应控制并行端口,即决定何时应为高电平或低电平。然后,我使用javah提取了一个c头文件。/*DON

c - 具有标准用户权限的 Windows 7 中的 dpinst.exe 行为

我在驱动程序包中使用dpint.exe。我在Windows764位操作系统中面临下面提到的场景。WhenUACEnabled,Itworksasexpectedinadminmode(userwithadminprivileges),standardusermodeandinguestmode.(i.e.,promtsawindowaskingforadminpasswordinstandardusermodeandguestmode).WhenUACisdisabled,InAdminmode(userwithadminprivileges)it"never"showsanywind

c - 设置边界保护数组

我想分配一个数组并对其进行设置,使其前后的页面都受到内存管理单元的保护,因此会自动捕获超出数组边界的尝试;然后捕获它以便以受控方式处理错误。我怀疑是否会有可移植的解决方案,但是分别在Windows上使用MicrosoftC和在Linux上使用GCC的最佳平台特定方法是什么? 最佳答案 实际上,有一种可移植的方法可以检测软件中的内存分配溢出。Dmalloc提供fencepost覆盖检测Fence-postmemoryistheareaimmediatelyaboveorbelowmemoryallocations.Itisalltoo

c - 如何将 _spawnvpe() 与自定义 PATH 值一起使用?

我在(http://stackoverflow.com/questions/10969488/why-does-windows-spawn-process-sometimes-trigger-error-status-sxs-assembly-not-f)中问了一个相关问题但我担心它会被问题的复杂性弄糊涂,所以,这是一个非常简单的版本:下面是一个调用_spawnvpe的例子,手动传递PATH值。这是行不通的。它出错并且不会运行记事本。更改为_spawnv或不传递PATH值使其工作。但是,_putenv的文档清楚地说明了env值的格式是KEY=VALUE。如何让它发挥作用?请具体说明,并

windows - 在同一行的窗口中输出重定向

是否可以在同一行的Windows批处理文件中重定向两个不同命令的输出?例如,第一个命令的输出位于我的文件的第1行,当我执行命令2以将其自身附加到与前一个输出相同的行时。谢谢 最佳答案 您可以将输出重定向到文件或将输出附加到文件:echoLINE1,>file.txtechoLINE2>>file.txt但是即使命令不输出CRLF,也总会有一个换行符(echo命令就是这样,你不能抑制它)要在同一行输出你需要使用这种方法:setcontent=ECHOLINE1>temp.txtfor/f"delims="%%iin(temp.txt)

windows - Windows 注册表重定向是 "bad thing"吗?

我有自己的安装程序,用于安装我编写的几个应用程序。我一直在更新这个程序以避免应用程序的数据文件更新进入用户的VirtualStore,因为我读到这是一件“坏事”。为此,我将程序和公共(public)数据文件分别存储在正确的位置,而不是像我们在XP时代那样将所有内容都放在程序文件中。我现在也在使用SHGetFolderPath(是的,它已被弃用,但我仍然需要支持我的XP用户)来获取已知文件夹,而不是拖网注册表,这是另一个“坏事”(我读过)。我接下来要做的是重写安装程序代码,以避免在向HKLM写入内容时将注册表重定向到Wow6432Node,因为我认为这是另一件“坏事”。但是,尽管我可以将

c++ - 无法从 freeGlut 项目获取标准输出

我有免费的glut项目,其中包含计算voronoy网格、初始化freeglut然后绘制网格的代码。pre-calculations...printf("Elapsed%lfseconds\n",(double)(clock()-start)/CLOCKS_PER_SEC);glutInit(&argc,argv);glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);glutInitWindowSize(WIDTH,HEIGHT);//createwindowglutCreateWindow("Voronoy");//register

c - 什么是 WINVER 0x501?没有它的 RegisterDeviceNotification 错误

我在代码中使用了RegisterDeviceNotificationAPI。如果我不使用#defineWINVER0x501,它就不起作用(出现链接器错误)。1)当我查看窗口Winuser.h时,RegisterDeviceNotificationA定义在#if(WINVER>=0x0500)下。这是什么原因?2)为了使RegisterDeviceNotificationA正常工作,我在自己的.h文件中声明了所有声明,但没有#if(WINVER>=0x0500)。这是正确的方法吗?3)我的另一个问题是在没有winver的情况下声明RegisterDeviceNotificationA有

c - Windows:防止 sleep 模式 - C 中的最小版本

我想在Windows下有一个最简单的C程序版本,它可以防止操作系统在运行时进入休眠模式或休眠模式。目前我有这个:#includeintmain(intargc,char**argv){while(1){SetThreadExecutionState(ES_CONTINUOUS|ES_SYSTEM_REQUIRED);Sleep(300*1000);/*wait300seconds*/}return0;}但是,这不起作用-如果我尝试使用OrwellDev-C++5.2.0.3编译它,我会收到此错误:[链接器错误]C:\Users\bachmann\AppData\Local\Temp\c